<html>
<head><meta charset="utf-8"><title>reorganization · wg-async-foundations/book · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/index.html">wg-async-foundations/book</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html">reorganization</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="168152562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152562">(Jun 14 2019 at 16:57)</a>:</h4>
<p>Hey, so I've been playing with a possible reorganization for the async book. You can get a feel for it here:</p>
<p><a href="https://github.com/nikomatsakis/async-book/blob/master/src/SUMMARY.md" target="_blank" title="https://github.com/nikomatsakis/async-book/blob/master/src/SUMMARY.md">https://github.com/nikomatsakis/async-book/blob/master/src/SUMMARY.md</a></p>



<a name="168152576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152576">(Jun 14 2019 at 16:57)</a>:</h4>
<p>the high-level idea is to pull the async-await material up higher</p>



<a name="168152646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152646">(Jun 14 2019 at 16:58)</a>:</h4>
<p><span class="user-mention" data-user-id="127859">@Taylor Cramer</span> you mentioned having a big PR incoming, is it <a href="https://github.com/rust-lang/async-book/pull/18" target="_blank" title="https://github.com/rust-lang/async-book/pull/18">https://github.com/rust-lang/async-book/pull/18</a> ?</p>



<a name="168152657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152657">(Jun 14 2019 at 16:58)</a>:</h4>
<p>indeed</p>



<a name="168152687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152687">(Jun 14 2019 at 16:58)</a>:</h4>
<p>btw <a href="https://github.com/rust-lang/async-book/issues/18" target="_blank" title="https://github.com/rust-lang/async-book/issues/18">async-book#18</a> should work now ;)</p>



<a name="168152726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152726">(Jun 14 2019 at 16:59)</a>:</h4>
<p>fancy</p>



<a name="168152742"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152742" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152742">(Jun 14 2019 at 16:59)</a>:</h4>
<p>But <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> I was hoping to get a better idea what you think is the "key thing" that closer understanding of the <code>Future</code> trait provides. You mentioned that you felt like it was important to helping unconfuse people</p>



<a name="168152833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152833">(Jun 14 2019 at 17:00)</a>:</h4>
<p>(I'm wondering if there is some simplified version of the intution that can be given more easily, with the full details deferred for later)</p>



<a name="168152947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168152947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168152947">(Jun 14 2019 at 17:01)</a>:</h4>
<p>Hm, I'm curious what the full details you have in mind are that you think we could omit</p>



<a name="168153008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153008">(Jun 14 2019 at 17:02)</a>:</h4>
<p>I think it's really important to cover the execution model (how futures are scheduled, what happens when you poll them, how they resolve etc.)</p>



<a name="168153029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153029">(Jun 14 2019 at 17:02)</a>:</h4>
<p>as well as how the combinators work via delegating to child futures</p>



<a name="168153044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153044">(Jun 14 2019 at 17:03)</a>:</h4>
<p>and giving an intuition for how the same principle applies to async/await code</p>



<a name="168153054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153054">(Jun 14 2019 at 17:03)</a>:</h4>
<p>I've found that trying to handwave "it's like javascript except if you don't <code>await</code> it it doesn't do anything" to not work very well</p>



<a name="168153077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153077">(Jun 14 2019 at 17:03)</a>:</h4>
<p>where does that break down?</p>



<a name="168153082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153082">(Jun 14 2019 at 17:03)</a>:</h4>
<p>there're too many holes around e.g. futures all being different types, how they're actually getting run, etc.</p>



<a name="168153134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153134">(Jun 14 2019 at 17:04)</a>:</h4>
<p>and that stuff all falls out more naturally if folks understand the structure of the state machines</p>



<a name="168153196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153196">(Jun 14 2019 at 17:05)</a>:</h4>
<p>Really interesting.</p>



<a name="168153221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153221">(Jun 14 2019 at 17:05)</a>:</h4>
<p>I could imagine trying to convey some sense of the "polling" model</p>



<a name="168153225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153225">(Jun 14 2019 at 17:05)</a>:</h4>
<p>in a more high-level way</p>



<a name="168153240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153240">(Jun 14 2019 at 17:06)</a>:</h4>
<p>You think the current TimerFuture and "build an executor" examples are too lengthy?</p>



<a name="168153281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153281">(Jun 14 2019 at 17:06)</a>:</h4>
<p>I mean in the end I think it's fine to show the details too</p>



<a name="168153296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153296">(Jun 14 2019 at 17:06)</a>:</h4>
<p>(I haven't read those examples yet)</p>



<a name="168153302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153302">(Jun 14 2019 at 17:06)</a>:</h4>
<blockquote>
<p>I mean in the end I think it's fine to show the details too</p>
</blockquote>
<p>people will definitely want to learn these!</p>



<a name="168153315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153315">(Jun 14 2019 at 17:06)</a>:</h4>
<p>I just imagine that it'll work better if you come to it</p>



<a name="168153322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153322">(Jun 14 2019 at 17:06)</a>:</h4>
<p>after you've played around a bit with async-await</p>



<a name="168153338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153338">(Jun 14 2019 at 17:06)</a>:</h4>
<p>maybe even being exposed to some of those gaps</p>



<a name="168153356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153356">(Jun 14 2019 at 17:07)</a>:</h4>
<p>my experience has been that people get pretty frustrated trying to write async/await code if they haven't taken the time to understand how futures work</p>



<a name="168153368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153368">(Jun 14 2019 at 17:07)</a>:</h4>
<p>it's a pretty leaky abstraction</p>



<a name="168153376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153376">(Jun 14 2019 at 17:07)</a>:</h4>
<p>well you definitely have more experience with watching people do that (and doing it!) than I do</p>



<a name="168153407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153407">(Jun 14 2019 at 17:07)</a>:</h4>
<p>though I'd love to have some specific examples (it's hard to do that, I know) of the kinds of things people get confused about</p>



<a name="168153447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153447">(Jun 14 2019 at 17:08)</a>:</h4>
<p>but I could also imagine encouraging patterns that make people less likely to hit rough edges, e.g. boxing everywhere at first</p>



<a name="168153462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153462">(Jun 14 2019 at 17:08)</a>:</h4>
<p>I've only written a small amount, so I guess my own experiences are not represenstative</p>



<a name="168153467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153467">(Jun 14 2019 at 17:08)</a>:</h4>
<p>so far I've not really had to know about the model (but of course I also kind of do)</p>



<a name="168153496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153496">(Jun 14 2019 at 17:08)</a>:</h4>
<blockquote>
<p>but I could also imagine encouraging patterns that make people less likely to hit rough edges, e.g. boxing everywhere at first</p>
</blockquote>
<p>yes so .. one thing that <span class="user-mention" data-user-id="203289">@boats</span> brought up was that people might have to know about <code>pin</code> (at present, at least) to use <code>select</code>, or maybe some other combinators</p>



<a name="168153509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153509">(Jun 14 2019 at 17:09)</a>:</h4>
<p>I'd definitely expect boxing as a reasonable starting point</p>



<a name="168153512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153512">(Jun 14 2019 at 17:09)</a>:</h4>
<p>indeed</p>



<a name="168153526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153526">(Jun 14 2019 at 17:09)</a>:</h4>
<p><code>select!</code> is unfortunately complex for a number of reasons</p>



<a name="168153574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153574">(Jun 14 2019 at 17:10)</a>:</h4>
<p>I feel like the book is a good .. way for us to help understand the overall "ergonomic picture"</p>



<a name="168153615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153615">(Jun 14 2019 at 17:10)</a>:</h4>
<p>Btw, cc <span class="user-mention" data-user-id="215333">@Florian Gilcher</span> -- who was it you were saying we should talk to re: async-book?</p>



<a name="168153802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153802">(Jun 14 2019 at 17:12)</a>:</h4>
<blockquote>
<p>a good way for us to understand the overall ergonomic picture</p>
</blockquote>



<a name="168153850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153850">(Jun 14 2019 at 17:12)</a>:</h4>
<p>ps I'm going to merge <a href="https://github.com/rust-lang/async-book/issues/18" target="_blank" title="https://github.com/rust-lang/async-book/issues/18">async-book#18</a> .. seems good?</p>



<a name="168153893"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153893" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153893">(Jun 14 2019 at 17:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> works for me (cc <span class="user-mention" data-user-id="211722">@Yoshua Wuyts</span> )</p>



<a name="168153932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168153932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168153932">(Jun 14 2019 at 17:14)</a>:</h4>
<p>it's gonna be annoying having to update all those line numbers every time we make a change ;)<br>
It'll be a good incentive to keep examples small and in their own crates :)</p>



<a name="168154030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168154030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168154030">(Jun 14 2019 at 17:15)</a>:</h4>
<blockquote>
<p>a good way for us to understand the overall ergonomic picture</p>
</blockquote>
<p>yeah, I'm going to expand on some of the later sections, and I'm hoping that will help add some clarity around where some of the unavoidable ergonomic burdens are</p>



<a name="168159243"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168159243" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168159243">(Jun 14 2019 at 18:23)</a>:</h4>
<p><span class="user-mention" data-user-id="127859">@Taylor Cramer</span> to start I'm going to open a PR with a more minimal version of my proposal =)</p>



<a name="168168953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168168953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168168953">(Jun 14 2019 at 20:26)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> maybe it would be good to describe the execution model in a pictorial form?</p>



<a name="168174747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168174747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168174747">(Jun 14 2019 at 21:55)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> sounds good</p>



<a name="168174759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168174759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168174759">(Jun 14 2019 at 21:55)</a>:</h4>
<p>I feel like there should be some way to explain the model without (e.g.) talking about <code>Waker</code></p>



<a name="168174804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168174804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168174804">(Jun 14 2019 at 21:56)</a>:</h4>
<p>but I'm not sure :)</p>



<a name="168174823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168174823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168174823">(Jun 14 2019 at 21:56)</a>:</h4>
<p>I'd still like to better understand what kind of unexpected leaks occur</p>



<a name="168326903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168326903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168326903">(Jun 17 2019 at 16:47)</a>:</h4>
<blockquote>
<p>I'd still like to better understand what kind of unexpected leaks occur</p>
</blockquote>
<p>Is there a reason you expect unexpected leaks?</p>



<a name="168326953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168326953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168326953">(Jun 17 2019 at 16:48)</a>:</h4>
<p>oh, "leaks" as in the abstraction</p>



<a name="168345331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/168345331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#168345331">(Jun 17 2019 at 20:39)</a>:</h4>
<p>right I just mean I want to understand more examples of what kind of confusion arises and what parts of the futures model explanation cleared it up. It seems to me like saying "futures are lazy, you await them or spawn them" would cover it, but I believe you when you say it does't</p>



<a name="171589471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/171589471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giles Cope <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#171589471">(Jul 24 2019 at 09:02)</a>:</h4>
<p>For me the confusion or rather lack of documentation is on examples of constructing Streams and whether one can construct a stream from a series (Vec?) of Futures. I think also showing the desugering in the book is a good way to demystify things.</p>



<a name="173152024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/173152024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#173152024">(Aug 13 2019 at 21:11)</a>:</h4>
<p><span class="user-mention" data-user-id="120134">@Giles Cope</span> what desugaring are you referring to?</p>



<a name="174246849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/174246849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Giles Cope <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#174246849">(Aug 27 2019 at 16:40)</a>:</h4>
<p>Showing how an async call is turned into an impl Future signature. I'm pretty sure your going to cover that though. Now I think my main questions are whether <a href="https://github.com/dtolnay/async-trait" target="_blank" title="https://github.com/dtolnay/async-trait">https://github.com/dtolnay/async-trait</a> or <a href="https://github.com/taiki-e/futures-async-stream" target="_blank" title="https://github.com/taiki-e/futures-async-stream">https://github.com/taiki-e/futures-async-stream</a> or something else is going to be a good stop-gap for creating streams. Would be good to point out the efforts out there.</p>



<a name="174247049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/201246-wg-async-foundations/book/topic/reorganization/near/174247049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/201246-wg-async-foundations/book/topic/reorganization.html#174247049">(Aug 27 2019 at 16:42)</a>:</h4>
<p>yeah, documenting <code>#[async_trait]</code> in general seems good</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>